package service;

import pojo.SimHash;

import java.math.BigInteger;

/**
 * @author tms
 * @date 2023.9.13
 */
public interface Service {

    /**
     * 分词计算向量
     *
     * @param simHash simHash对象
     * @return 分词向量
     */
    BigInteger simHashConstruct(SimHash simHash);

    /**
     * 计算单个分词的hash值
     *
     * @param word      分词值
     * @param hashCount 初始桶大小
     * @return hash值
     */
    BigInteger getWordHash(String word, Integer hashCount);

    /**
     * 获取标题内容的相似度
     *
     * @param simHash1 simHash对象1
     * @param simHash2 simHash对象2
     * @return 相似度
     */
    Double getSimilar(SimHash simHash1, SimHash simHash2);

    /**
     * 获取标题内容的海明距离
     *
     * @param simHash1 simHash对象1
     * @param simHash2 simHash对象2
     * @return 海明距离
     */
    int getHammingDistance(SimHash simHash1, SimHash simHash2);

}
